Skip to content

feat(orchestration): add compacting status indicator#46

Merged
tyulyukov merged 2 commits into
mainfrom
marcode/compacting-status-indicator
Apr 20, 2026
Merged

feat(orchestration): add compacting status indicator#46
tyulyukov merged 2 commits into
mainfrom
marcode/compacting-status-indicator

Conversation

@tyulyukov
Copy link
Copy Markdown
Owner

Summary

  • Add compacting boolean field to OrchestrationSession to track when Claude or Codex is performing context compaction
  • Implement deriveNextCompacting() state machine to toggle compacting flag based on provider events:
    • Enabled by Claude session.state.changed with CLAUDE_COMPACTING_REASON or Codex item.started with context_compaction
    • Disabled by successful/failed completion, thread.state.changed=compacted, or safety events (turn start/complete, session exit)
  • Update ClaudeAdapter to emit CLAUDE_COMPACTING_REASON when provider reports status:compacting
  • Add isCompacting prop to MessagesTimeline to display "Compacting…" status message during context compression
  • Update all test snapshots and projection queries to include compacting: false default
  • Export CLAUDE_COMPACTING_REASON constant for provider integration

Testing

  • Compacting flag flips true on Claude/Codex compaction lifecycle events ✓
  • Compacting flag clears on safety events (turn start/complete, session exit, errors) ✓
  • UI displays "Compacting…" when session.compacting === true
  • Store mapping includes compacting state in ThreadSession ✓
  • All test snapshots updated with new field ✓

- Add `compacting: boolean` field to OrchestrationSession to track provider
  context compaction operations
- Derive compacting state from provider events: Claude session.state.changed
  with CLAUDE_COMPACTING_REASON, Codex context_compaction item lifecycle,
  and thread.state.changed=compacted
- Clear compacting flag on safety events (turn.started/completed, session.exited)
  to prevent stale state
- Display "Compacting..." in MessagesTimeline UI during active compaction
- Add comprehensive test coverage for all state transitions
- Auto-extract plan steps from TodoWrite tool invocations
- Auto-open plan sidebar when new steps arrive for the current turn
- Replace todo checklist UI with unified plan/task sidebar display
- Remove showTodosInComposer setting and ComposerActiveTasksPanel
- Dynamic sidebar label ("Plan" vs "Tasks") based on interaction mode
- Fall back to "Task" label for blank todo content
- Improve exploration card search term detection and formatting
@tyulyukov tyulyukov merged commit 72bb363 into main Apr 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant